package school;

// 父类：封装Student和Teacher的共性属性与通用业务方法
public abstract class Person {
    // 权限修饰符：protected（子类可访问，不同包子类也可访问，用于验证权限控制）
    protected int id;       // 共性属性：编号（学生学号/教师工号）
    protected String name;  // 共性属性：姓名
    protected String gender;// 共性属性：性别

    // 父类构造方法：初始化共性属性，供子类通过super()调用
    public Person(int id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }

    // 父类业务方法：打印工作单（抽象方法，由子类重写实现个性化功能）
    public abstract void printWorksheet();

    // Getter方法（确保不同包的测试类可通过getter访问父类属性，验证权限）
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }
}